ЗВІТ
лабораторної роботи №5
з дисципліни “Структури даних та алгоритми”
на тему: “ Структура даних ЧЕРГА”
Варіант №22
МЕТА РОБОТИ
Вивчення фундаментальної абстрактної структури даних - черги. Набуття практичних навичок побудови черги, дослідження динаміки її вмісту та використання черг для розв'язання прикладних задач.
ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ
І. Завдання 1: Змоделюйте чергу (або дек) згідно з завданням. Перепишіть основні операції для роботи з чергою (деком), і продемонструйте їх застосування для операцій додавання і вилучення елементів в чергу (дек). Для цього задайте послідовність з N цілих чисел. Всі додатні числа послідовно заносяться в чергу (дек), кожне від’ємне число вилучає з черги (деку) один елемент (при роботі з деком, парні числа працюють з одним кінцем деку, а непарні – з іншим). Показувати всі зміни, що будуть відбуватись у черзі (деку).
ВИБІР ІНДИВІДУАЛЬНОГО ЗАВДАННЯ
Перша літера прізвища
Номер студента в списку групи
Варіант
А, І, С
Б, Ї, Ф
В, Й, У
Г, К, Т
Д, Л, Х
Е, М, Ц
Є, Н, Ч
Ж,О,Ш,Щ
З, П, Ю
И, Р, Я
10, 20, 30
І1
І2
І3
І4
І5
І6
І7
І8
І9
І10
9, 19, 29
І1
І2
І3
І4
І5
І6
І7
І8
І9
І10
8, 18, 28
І1
І2
І3
І4
І5
І6
І7
І8
І9
І10
7, 17, 27
І1
І2
І3
І4
І5
І6
І7
І8
І9
І10
6, 16, 26
І1
І2
І3
І4
І5
І6
І7
І8
І9
І10
5, 15, 25
І1
І2
І3
І4
І5
І6
І7
І8
І9
І10
4, 14, 24
І1
І2
І3
І4
І5
І6
І7
І8
І9
І10
3, 13, 23
І1
І2
І3
І4
І5
І6
І7
І8
І9
І10
2, 12, 22
І1
І2
І3
І4
І5
І6
І7
І8
І9
І10
1, 11, 21
І1
І2
І3
І4
І5
І6
І7
І8
І9
І10
4. Змоделюйте чергу, в якій реалізований такий механізм вилучення елемента з черги: початок черги завжди знаходиться в першому елементі масиву; при вилученні одного елемента з черги, всі решта елементів пересуваються на одну позицію ближче до початку масиву.
Хід роботи:
У ході лабораторної роботи я написав клас Чергу на основі якого і виконував поставлене завдання.
#ifndef TURN_H
#define TURN_H
#include <stddef.h>
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<iomanip>
#include <string>
using namespace std;
class Turn
{
int index;
int *turn = new int[index];
public:
Turn();
Turn(int);
Turn(int*);
~Turn();
bool empty();//Повертає true, якщо черга порожня, і false у противному випадку
int size();//Повертає кількість елементів у черзі
void pop();//Видаляє елемент з черги, але не повертає його значення
int front();//Повертає значення елемента з початку черги, але не видаляє його
void push(int);//Поміщає новий елемент у кінець черги
};
/
Рис.1 Результат виконання програми.
Висновок: у ході лабораторної роботи я навчився працювати з типом даних черга.
Додаток
#ifndef TURN_H
#define TURN_H
#include <stddef.h>
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<iomanip>
#include <string>
using namespace std;
class Turn
{
int index;
int *turn = new int[index];
public:
Turn();
Turn(int);
Turn(int*);
~Turn();
bool empty();//Повертає true, якщо черга порожня, і false у противному випадку
int size();//Повертає кількість елементів у черзі
void pop();//Видаляє елемент з черги, але не повертає його значення
int front();//Повертає значення елемента з початку черги, але не видаляє його
void push(int);//Поміщає новий елемент у кінець черги
};
#endif // TURN_H
#include "turn.h"
Turn::Turn()
{
}
Turn::Turn(int n)
{
index = n;
for(int i=0;i<index; i++)
{
turn[i]=NULL;
}
}
Turn::Turn(int* mas)
{
turn = mas;
}
bool Turn::empty()//Повертає true, якщо черга порожня, і false у противному випадку
{
for(int i= 0;i<index;i++)
{
if(turn[i]==NULL)
{
return false;
}
}
return true;
}
int Turn::front()//Повертає значення елемента з початку черги, але не видаляє його
{
int b=index;
for(int i=0;i<index;i++)
...